Files of the form date_time_br.fits contain the radial component of the
observed magnetic field:

The primary HDU is an (nx,ny) dimensional array containing Brad. WCS
information is provided in the headers to construct the coordinates of each
pixel:
xn_i = CRVALn + CDELTn * (i - CRPIXn)

-------------------------------------------------------------------------------

Files of the form date_time_ARnum_WCS contain World Coordinate System
information for running the PFSS code. For full disk, this information is
redundant with what is contained in the date_time_br.fits file, but it allows
for specifying a subvolume to be analyzed, typically a HARP box, but can be
customized to any rectangle in the image grid.

-------------------------------------------------------------------------------

Files of the form date_time_ARnum_nmax_pfss_image.fits contain the PFSS field
on the image grid evaluated with maximum spherical harmonic degree nmax:

The primary HDU is an (nx,ny,3) dimensional array containing the components of
the field (Blon,Blat,Brad). WCS information is provided in the headers to
construct the coordinates of each pixel:
xn_i = CRVALn + CDELTn * (i - CRPIXn)

-------------------------------------------------------------------------------

Files of the form date_time_ARnum_nmax_nrad_pfss_volume.fits contain the PFSS
field evaluated on a regular longitude-sin(latitude) grid, but (usually) with a
stretched grid in radius evaluated with maximum spherical harmonic degree nmax.

The primary HDU is an (nlon,nlat,nrad,3) dimensional array containing the
components of the field (Blon,Blat,Brad). WCS information is provided in the
headers to construct the longitude and sin(latitude) of each pixel, but the 
coordinate grid is also recorded in the extensions.

The first extension is an nlon dimensional array containing the longitude.

The second extension is an nlat dimensional array containing the sin(latitude).

The third extension is an nrad dimensional array containing the radius.

-------------------------------------------------------------------------------

Files of the form date_time_ARnum_nmax_nrad_nulls.fits contain information
about the null points:

The primary HDU is an (nnulls,3) dimensional array containing the position of
the null points in (SOLX,SOLY,SOLZ).

The first extension is an nnulls dimensional array containing the null type, +1
or -1 for positive/negative nulls.

The second extension is an (nnulls,3) dimensional array containing the null
eigenvalues. 

The third extension is an (nnulls,3,3) dimensional array containing the null
eigenvectors.

-------------------------------------------------------------------------------

Files of the form date_time_ARnum_nmax_nrad_spines.fits contain information
about the spine field lines:

The primary HDU is a (2*nnulls,1000,3) dimensional array (called sfl hereafter)
containing points along the spine field lines in (SOLX,SOLY,SOLZ). The spines
for null i are in array elements sfl(2*i,*,*) and sfl(2*i+1,*,*), assuming the
index starts from 0. Element sfl(j,0,0) is the number of points along the spine
field line. Element sfl(j,1,0) is the stopping condition for the field line
tracing, where 1, 2, or 3 means the field line tracing completed successfully
(and the value indicates which boundary the spine field line ended on). The end
point of a spine field line is thus stored in sfl(j,sfl(j,0,0),*). Array
elements after the last point are set to NaN. 

-------------------------------------------------------------------------------

Files of the form date_time_ARnum_nmax_nrad_Xnnn_spines.fits contain
information about the spine field lines for null Xnnn, where X is either A or B
reflecting the null type, and nnn is an integer label for the null:

The primary HDU is a (2,1000,3) dimensional array (called sfl hereafter)
containing points along the spine field lines in (SOLX,SOLY,SOLZ). Element
sfl(j,0,0) is the number of points along the spine field line. Element
sfl(j,1,0) is the stopping condition for the field line tracing, where 1, 2, or
3 means the field line tracing completed successfully (and the value indicates
which boundary the spine field line ended on). The end point of a spine field
line is thus stored in sfl(j,sfl(j,0,0),*). Array elements after the last point
are set to NaN. 

The information is redundant with that in the file containing all the spine
field lines, but is saved separately to avoid the need to always read in all
the spines.

-------------------------------------------------------------------------------

Files of the form date_time_ARnum_nmax_nrad_Xnnn_fanfl.fits contain
information about field lines in the fan (separatrix) surface for null Xnnn,
where X is either A or B reflecting the null type, and nnn is an integer label
for the null:

The primary HDU is a (nfanfl,1000,3) dimensional array (called sfl hereafter)
containing points along the fan field lines in (SOLX,SOLY,SOLZ). The number of
fan field lines varies from null to null, and is determined by requiring a
minimum distance between neighboring points in the fan trace. Element
sfl(j,0,0) is the number of points along the fan field line. Element sfl(j,1,0)
is the stopping condition for the field line tracing, where 1, 2, or 3 means
the field line tracing completed successfully (and the value indicates which
boundary the fan field line ended on). The end point of a fan field line is
thus stored in sfl(j,sfl(j,0,0),*). Array elements after the last point are set
to NaN. 

-------------------------------------------------------------------------------

Files of the form date_time_ARnum_nmax_nrad_Xnnn_sepfl.fits contain
information about separator field lines for null Xnnn, where X is either A or B
reflecting the null type, and nnn is an integer label for the null:

The primary HDU is a (nsepfl,1000,3) dimensional array (called sfl hereafter)
containing points along the separator field lines in (SOLX,SOLY,SOLZ). The
number of separator field lines varies from null to null. Element sfl(j,0,0) is
the number of points along the separator field line. Element sfl(j,1,0) is the
stopping condition for the field line tracing, where 1, 2, or 3 means the field
line tracing completed successfully (and the value indicates which boundary the
separator field line ended on). The end point of a separator field line is thus
stored in sfl(j,sfl(j,0,0),*). Array elements after the last point are set to
NaN. 

Note that not every null has separator field lines, and so this file may not
exist for all null points.

-------------------------------------------------------------------------------
Files of the form date_time_ARnum_flare_ribbon_heat_map.fits contain
the heat map of detected flare ribbons during the interval T_REF0 - T_REFN.
Flare ribbon pixels that occur multiple times at the same location or are longer-
lived have a higher value within this map.

The primary HDU is an (nx,ny) dimensional array containing the heat map. WCS
information is provided in the headers to construct the coordinates of each
pixel:
xn_i = CRVALn + CDELTn * (i - CRPIXn)

-------------------------------------------------------------------------------
Files of the form date_time_ARnum_flare_ribbon_time_map.fits contain
the time map of detected flare ribbons. Each flare ribbon pixels inicate the time
at first detection in minutes after T_REF.

The primary HDU is an (nx,ny) dimensional array containing the heat map. WCS
information is provided in the headers to construct the coordinates of each
pixel:
xn_i = CRVALn + CDELTn * (i - CRPIXn)
-------------------------------------------------------------------------------